package com.zekdot.userclient.service;

import com.zekdot.userclient.dto.Envelope;
import com.zekdot.userclient.entity.UserEntity;

import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * Create by zekdot on 20-3-14.
 */
public interface UserService {
    /**
     * 增加一个用户
     * @param userEntity 用户实体
     * @param joinMet 加入方式 0-访客 1-正式用户
     * @return 加入的结果
     */
    public Envelope addUser(UserEntity userEntity,int joinMet);

    /**
     * 获取用户
     * @param username 用户名
     * @return 用户实体
     */
    public Envelope getUser(String username);

    /**
     * 存储用户列表，前端会将Excel解析为用户列表然后传到后端来
     * @param userEntityList 用户列表
     * @return 存储结果
     */
    public Envelope addUsers(List<UserEntity> userEntityList);

    /**
     * 用户注册
     * @param userEntity 用户实体
     * @return 注册结果
     */
    public Envelope register(UserEntity userEntity) throws UnsupportedEncodingException;

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 登录结果
     */
    public Envelope login(String username,String password) throws UnsupportedEncodingException;

    /**
     * 修改用户状态
     * @param username 用户名
     * @param status 0-恢复正常使用 2-限制用户登录
     * @return 修改结果
     */
    public Envelope updateUserState(String username,int status);

    /**
     * 获取更多用户
     * @param lastUsername 最后一条用户名
     * @param length 列表长度
     * @return 用户列表
     */
    public Envelope getMoreUsers(String lastUsername,int length);

    /**
     * 修改密码
     * @param username 用户名
     * @param oriPassword 原始密码
     * @param newPassword 新密码
     * @return
     */
    Envelope changePassword(String username,String oriPassword,String newPassword);
}
